//===================================================================================
// JobPosition's Form Model
//
// Coder: Code Milker v1.0
// 0 - EntityName
// 1 - Properties
//===================================================================================

namespace Forest.Lion.Web.Models.JobPosition
{
    using System;
    using System.ComponentModel.DataAnnotations;
    using Forest.Lion.Domain.Contracts;
    using System.Collections.Generic;
    using System.Web.Mvc;
    using Forest.Lion.Model;

    public class JobPositionFormModel : IJobPositionFormModel
    {
        [Display(Name = "职位ID")]
        public Guid Id { get; set; }

        [Display(Name = "职位名称")]
        [Required(ErrorMessage = "请填写职位名称")]
        public string JobTitle { get; set; }

        [Display(Name = "职位类别")]
        [Required(ErrorMessage = "请填写职位类别")]
        public int Category { get; set; }
        public IEnumerable<Lov> CategoryList { get; set; }
        public IEnumerable<Lov> SubCategoryList { get; set; }

        [Display(Name = "职位排序")]
        public int? SortOrder { get; set; }

        [Display(Name = "工作性质")]
        public int JobType { get; set; }
        public IEnumerable<Lov> JobTypeList { get; set; }

        [Display(Name = "部门")]
        public Guid? DepartmentId { get; set; }
        //public IEnumerable<SelectListItem> DepartmentList { get; set; }
        public IEnumerable<DepartmentFormModel> DepartmentList { get; set; }
        

        [Display(Name = "使用部门联系方式")]
        public bool UseDepartmentAddress { get; set; }

        [Display(Name = "招聘人数")]
        [Required(ErrorMessage = "请填写招聘人数")]
        public int Wants { get; set; }

        [Display(Name = "工作地区")]
        [Required(ErrorMessage = "请填写工作地区")]
        public int Location { get; set; }
        public IEnumerable<Lov> LocationList { get; set; }
        public IEnumerable<Lov> SubLocationList { get; set; }

        [Display(Name = "岗位职责")]
        [Required(ErrorMessage = "请填写岗位职责")]
        public string Responsibilities { get; set; }

        [Display(Name = "专业要求")]
        public int? Major { get; set; }
        public IEnumerable<SelectListItem> MajorList { get; set; }

        [Display(Name = "教育程度")]
        [Required(ErrorMessage = "请填写教育程度")]
        public int EducationLevel { get; set; }
        public IEnumerable<SelectListItem> EducationLevelList { get; set; }

        [Display(Name = "工作经验")]
        [Required(ErrorMessage = "请填写工作经验")]
        public int YearsOfExperience { get; set; }
        public IEnumerable<SelectListItem> YearsOfExperienceList { get; set; }

        [Display(Name = "语言要求")]
        public int? Language { get; set; }
        public IEnumerable<SelectListItem> LanguageList { get; set; }

        [Display(Name = "程度要求")]
        public int? LanguageLevel { get; set; }
        public IEnumerable<SelectListItem> LanguageLevelList { get; set; }

        [Display(Name = "最小年龄")]
        public int? MinAge { get; set; }

        [Display(Name = "最大年龄")]
        public int? MaxAge { get; set; }
        public IEnumerable<SelectListItem> AgeList { get; set; }

        [Display(Name = "性别")]
        public int? Gender { get; set; }
        public IEnumerable<Lov> GenderList { get; set; }

        [Display(Name = "任职要求")]
        public string Qualifications { get; set; }

        [Display(Name = "薪酬范围")]
        [Required(ErrorMessage = "请填写薪酬范围")]
        public int SalaryRange { get; set; }
        public IEnumerable<SelectListItem> SalaryRangeList { get; set; }

        [Display(Name = "具体月薪")]
        [Required(ErrorMessage = "请填写具体月薪")]
        public int MonthlySalary { get; set; }

        [Display(Name = "是否公开")]
        [Required(ErrorMessage = "请填写是否公开")]
        public bool IsOpenSalaryRange { get; set; }

        [Display(Name = "其他福利待遇")]
        public string Welfare { get; set; }

        [Display(Name = "联系人")]
        public string Contact { get; set; }

        [Display(Name = "电子邮件 ")]
        public string Email { get; set; }

        [Display(Name = "联系电话")]
        [Required(ErrorMessage = "请填联系电话")]
        public string Tel { get; set; }

        [Display(Name = "传真")]
        public string Fax { get; set; }

        [Display(Name = "面试地址")]
        public string Address { get; set; }

        [Display(Name = "邮编")]
        public string PostalCode { get; set; }

        [Display(Name = "毕业生可")]
        public bool RecruiteGraduates { get; set; }

        [Display(Name = "接收求职邮件")]
        public bool IsReceivedEmail { get; set; }

        [Display(Name = "职位时效范围")]
        public int DateRage { get; set; }
        public IEnumerable<SelectListItem> DateRageList { get; set; }

        [Display(Name = "状态")]
        public int Status { get; set; }

        public DateTime StartDate { get; set; }
        public DateTime EndDate { get; set; }
        public String EndDateDisplay { get; set; }
        public DateTime Reposted { get; set; }
    }
}
